1. Field of the Invention
This invention relates to systems and methods for encoding, compressing, and transmitting or storing video or still images.
2. Description of Related Art
Many types of video encoders compress video images to reduce the amount of data which is transmitted over digital channels or stored on media or in memory. Typically, a video encoder receives a digitized video image as pixel maps representing a series of frames which are displayed in sequence to form a moving image. The video encoder converts the pixel maps into coded video data which requires fewer bits to express. An ideal coding method for a video encoder has low computational complexity to allow fast coding with minimal processing circuitry, high compression to reduce bandwidth required to transmit or store the video data, and retains a high quality image after encoding. Such ideal coding methods are difficult to achieve. Usually, complexity must be increased and/or the image quality decreased to improve compression. Coding methods which improve compression without a corresponding increase in complexity or which reduce complexity without a corresponding loss of compression or image quality are sought.
Lacking an ideal coding method, coding methods suited for particular applications are typically selected according to the compression required for the available bandwidth and the available processing power. An application which transmits video over a channel having a very limited bandwidth often uses complex coding to greatly reduce the amount of data needed to accurately convey a video image. This requires computational resources of sufficient power to perform complex coding at the frame rate of the video image. Complex coding may be unsuited for applications having limited or shared computational resources and a relatively large bandwidth transmission channel.
Selecting a suitable video coding method for a software encoder which runs on a variety of platforms having different levels of available computing power presents additional problems. If a minimum complexity coding method suitable for a low power platforms is selected, video compression often suffers so that transmission channel bandwidth may be overtaxed (unable to meet the desired frame rate) while computational power of high power platforms is wasted. In contrast, if a high complexity coding method is employed, low power platforms may be unable to encode video at the desired frame rate; and transmission channel bandwidth may be wasted at the expense of computing power which could be used for other purposes.